<template>
        <div class="row">
<!--展示用戶列表--> 
      <div v-show='info.users.length' class="card" v-for='user in info.users' :key='user.login'>
        <a :href="user.html_url" target="_blank">
          <img :src="user.avatar_url" style='width: 100px'/>
        </a>
        <p class="card-text">{{user.login}}</p>
      </div>
      <!--展示歡迎詞-->
    <h1 v-show='info.isFirst'>Welcome!</h1>
      <!--展示加載中-->
    <h1 v-show='info.isLoading'>Loading....</h1>
      <!--展示錯誤信息-->
    <h1 v-show='info.errMsg'>{{info.errMsg}}</h1>

    </div>
</template>

<script>
export default {
    name:'List',
    data(){
        return{
            info:{ //沒辦法直接拿取data數據,會影響getter/setter所以創建一個info
                isFirst:true,
                isLoading:false,
                errMsg:'',
                users:[]
            }

        }
    },
    mounted(){
        this.$bus.$on('updateListData',(dataObj)=>{
            //ES6 通過字面量的形式合併對象,將重名的屬性以後邊dataObj為主,未重名照舊,可以避免isFirst在搜尋後丟失
            this.info = {...this.info,...dataObj} //
        })
    }
}
</script>

<style scoped>
.album {
  min-height: 50rem; /* Can be removed; just added for demo purposes */
  padding-top: 3rem;
  padding-bottom: 3rem;
  background-color: #f7f7f7;
}

.card {
  float: left;
  width: 33.333%;
  padding: .75rem;
  margin-bottom: 2rem;
  border: 1px solid #efefef;
  text-align: center;
}

.card > img {
  margin-bottom: .75rem;
  border-radius: 100px;
}

.card-text {
  font-size: 85%;
}
</style>